Streaming media content typically involves encoding the media content (e.g., video and/or audio) into a data format which may be easily transferred (or “streamed”) over a network, from one device to another. The goal of streaming media content is to provide a receiving device with a steady stream of data to ensure constant and continuous playback of the desired media content, without excessive buffering (i.e., pre-storing of the content data). Thus, the quality of the media content being played back depends on both the reliability of the bandwidth of the receiving device, as well as the size of the data stream.
For example, media content that is encoded at a very low bit rate may be played back uninterruptedly even if the receiving device has a relatively low bandwidth connection to the network, although the sound and/or picture quality of the media content may suffer. On the other hand, a receiving device may need to be connected at a much higher bandwidth for uninterrupted playback of media content that is encoded at a relatively high bit rate. Media content that is encoded at a higher bit rate may offer superior sound and/or picture quality, however, there may be slight pauses (e.g., to buffer the received data) during playback of the media content if the receiving device is not connected at a high enough bandwidth.
A problem with shared Ethernet connections is that the bandwidth associated with any individual device often fluctuates. Because the bandwidth associated with a receiving device can be unpredictable at any given time, it is difficult to create an “optimized” stream of media content by encoding at just a single fixed bit rate.
Thus, there is a need for encoding and streaming media content over a network by adjusting the quality of the sound and/or picture quality to account for fluctuations in the bandwidth associated with a receiving device, without interrupting a playback of the media content on the receiving device.